package com.networkmanagerj.view.usuario
{
	import com.networkmanagerj.model.GrupoUsuario;
	import com.networkmanagerj.model.Usuario;
	
	import mx.collections.ArrayCollection;
	import mx.controls.Alert;
	import mx.core.UIComponent;
	import mx.events.FlexEvent;
	import mx.rpc.events.ResultEvent;

	public class UsuarioGridScript extends UsuarioGridView
	{
		private var loadUsuarios:Boolean = true;
		private var loadGrupo:Boolean = true;
		public function UsuarioGridScript()
		{
			super();
			MESSAGE_SAVE_SUCESS = "Usuário salvo com sucesso!";
			MESSAGE_UPDATE_SUCESS = "Usuário alterado com sucesso!";
		}
		
		override protected function onCreateComplete(event:FlexEvent):void{
			super.onCreateComplete(event);
		}
		
		override protected function loadDataProvider():void{
			dataProvider =null;
			remoteObject.getAll(Usuario.remoteClass);
		}
		
		override protected function getAllSucess(event:ResultEvent):void{
			super.getAllSucess(event);
			if(loadGrupo){
				gruposUsuarios = null;
				remoteObject.getAll(GrupoUsuario.remoteClass);
				loadGrupo = false;
			}else if( gruposUsuarios==null && !loadGrupo){
				gruposUsuarios=event.result as ArrayCollection;
			}
		}
		
		override protected function gridEdit(object : Object):void
		{
			super.gridEdit(object);
			usuario = object as Usuario;
			tw.title = "Editando usuário";
		}
		
		override protected function clearForm(child:UIComponent=null):void{
			usuario= new Usuario();
			grupos.selectedIndex = -1;
			tw.title = "Novo usuário";
		}
			
		
		override protected function save():void{
				usuario.login = txtLogin.text;
				usuario.senha = txtSenha.text;
				usuario.ativo = ckAtivo.selected;
				usuario.email = txtEmail.text;
				usuario.nome = txtNome.text;
				usuario.grupo = grupos.selectedItem;
				if(usuario.id==0){
					remoteObject.save(usuario);
				}else{
					remoteObject.update(usuario);
				}
		}
	}
}